package main

import (
	"github.com/glebarez/sqlite"
	// 需要 go env -w CGO_ENABLED=1
	// 并且需要gcc, 不过这个是官方实现, 比较好
	// "gorm.io/driver/sqlite"
	"gorm.io/gorm"
)

// 定义一个结构体，对应数据库表
type User struct {
	gorm.Model
	Name  string
	Email string `gorm:"unique"`
}

func main() {
	// 连接 SQLite 数据库（文件名为 test.db）
	db, err := gorm.Open(sqlite.Open("./dev.db"), &gorm.Config{})
	if err != nil {
		panic("failed to connect database")
	}

	// 自动迁移 schema
	db.AutoMigrate(&User{})

	// 创建记录
	db.Create(&User{Name: "Alice", Email: "alice@example.com"})

	// 查询记录
	var user User
	db.Where("name = ?", "Alice").First(&user)
	println("Found user:", user.Name)

	// 更新记录
	db.Model(&user).Update("Name", "Bob")

	// 删除记录
	db.Delete(&user)
}
